#include "Carta.h"
#include <cstring> // memcpy

Carta::Carta(int palo, int numero) : palo(palo), numero(numero) {
}

Carta::~Carta() {
}

int Carta::getPalo() { 
	return palo; 
}

int Carta::getNumero() { 
	return numero; 
}

char* Carta::serializar(int* tamanioBuffer)
{
	*tamanioBuffer = sizeof(Carta);
	char* buffer = new char[*tamanioBuffer];
	memcpy(buffer,this,*tamanioBuffer);
	return buffer;
}


Carta Carta::deserializar(char* dato, int tamanioDato) {
	Carta aux(0,0);
	memcpy(&aux, dato, tamanioDato);
	return aux;
}

std::ostream& operator<<(std::ostream& opIzquierda, const Carta& carta)
{
	std::string palo;
	if(carta.palo == ORO)
		palo = "oro";
	else if(carta.palo == COPA)
		palo = "copa";
	else if(carta.palo == ESPADA)
		palo = "espada";
	else if(carta.palo == BASTO)
		palo = "basto";
	
	return opIzquierda << carta.numero << " de " << palo;
}
